1. Field of the Invention
The present invention relates to a system for connecting a computational server to a data network, and more particularly to a system that provides load sharing and fault tolerance across multiple network interface controllers connecting a server to a computer network.
2. Related Art
Network interface controllers (NICs) are typically used to connect servers to computer networks. These connections are susceptible to a variety of failures including loose cables, cable failures, and NIC failures. Such failures may be guarded against by providing multiple pathways between a server and a network through multiple NICs. This allows communication to be rerouted around failed connections, failed cables or failed NICs. Ideally, this rerouting takes place transparently, so that upper layers of a network system or a network user do not have to provide for rerouting around failed components. Note that this type of fault tolerance system need not insure that all data is transmitted successfully through the NIC because upper layers of the network system can retransmit data that initially fails to get through. Providing multiple NICs also makes it possible to perform load sharing across the multiple NICs to potentially improve system throughout.
An existing method for providing fault tolerance and load sharing across multiple NICs is through use of a protocol-level interface between an operating system and drivers for the NICs. This method has the disadvantage that a different interface must be provided for each protocol, thus resulting in a great amount of software complexity if a plurality of protocols are provided for.
What is needed is a mechanism for transparently providing fault tolerance and load sharing across multiple NICs that is free from the complexity of a protocol-level interface.